<?php
namespace PsiFramework\Applications\DefaultApp\Classes\Model;

import("Classes.Model.Object");
import("Applications.DefaultApp.Classes.Model.Country");
import("Applications.DefaultApp.Classes.Model.Subdivision");

use \PsiFramework\Classes\Model\Object;
use \PsiFramework\Applications\DefaultApp\Classes\Model\Country;
use \PsiFramework\Applications\DefaultApp\Classes\Model\Subdivision;

/**
 * PsiFramework
 * Php Simple Framework
 *
 * @author Rémi San
 * @version beta
 */

/**
 * The City class describes the information for a City
 *
 * @package Model
 */
class City extends Object
{

    protected /*int*/         $_id ;
    protected /*string*/      $_name ;
    protected /*string*/      $_asciiName ;
    protected /*Subdivision*/ $_subdivision ;
    protected /*Country*/     $_country ;

    /**
     * City constructor
     *
     * @param     int          $id             the id
     * @param     string       $name           the name
     * @param     string       $asciiName      the ASCII name
     * @param     Subdivision  $subdivision    the subdivision
     * @param     Country      $country        the country
     * @return    City         the city instance
     */
    public function __construct(
        /*int*/ $id=null,
        /*string*/ $name=null,
        /*string*/ $asciiName=null,
        /*Subdivision*/ $subdivision=null,
        /*Country*/ $country=null
    )
    {
        $this->_id = $id ;
        $this->_name = $name ;
        $this->_asciiName = $asciiName ;
        $this->_subdivision = $subdivision ;
        $this->_country = $country ;
    }

    /**
     * Setter for id
     *
     * @param int    the id
     */
    public function setId(/*int*/ $id)
    {
        $this->_id = $id ;
    }

    /**
     * Setter for name
     *
     * @param int    the name
     */
    public function setName(/*string*/ $name)
    {
        $this->_name = $name ;
    }

    /**
     * Setter for asciiname
     *
     * @param int    the asciiname
     */
    public function setAsciiName(/*string*/ $asciiname)
    {
        $this->_asciiName = $asciiname ;
    }

    /**
     * Setter for subdivision
     *
     * @param int    the subdivision
     */
    public function setSubdivision(/*Subdivision*/ $subdivision)
    {
        $this->_subdivision = $subdivision ;
    }

    /**
     * Setter for country
     *
     * @param int    the country
     */
    public function setCountry(/*Country*/ $country)
    {
        $this->_country = $country ;
    }

    /**
     * Getter for id
     *
     * @return int    the id
     */
    public function getId()
    {
        return $this->_id ;
    }

    /**
     * Getter for name
     *
     * @return string    the name
     */
    public function getName()
    {
        return $this->_name ;
    }

    /**
     * Getter for asciiName
     *
     * @return string    the ASCII name
     */
    public function getAsciiName()
    {
        return $this->_asciiName ;
    }

    /**
     * Getter for subdivision
     *
     * @return Subdivision    the subdivision
     */
    public function getSubdivision()
    {
        return $this->_subdivision ;
    }

    /**
     * Getter for country
     *
     * @return Country    the country
     */
    public function getCountry()
    {
        return $this->_country ;
    }

    /**
     * The toString function
     *
     * @return string
     */
    public function toString()
    {

    }
}
